#ifndef LAYOUTHELPER_H_
#define LAYOUTHELPER_H_

#include <QPoint>
#include <QSize>
#include <QPolygon>
#include <QRect>
#include <HexVector.h>

/*
using namespace structure;

class ElementButton;
class CornerButton;
class SideButton;
class HexagonButton;

class LayoutHelper
{
public:
	LayoutHelper();
	virtual ~LayoutHelper();

	QPoint hexVectorToXY(const HexVector & position, const QRect & windowRect) const;
	QRect calculateHexagonGeometry(const HexVector & position, const QRect & windowRect) const;
	QRect calculateCornerGeometry(const HexVector & position, const QRect & windowRect) const;
	QRect calculateSideGeometry(const HexVector & position, const QRect & windowRect) const;

	void setHexagonLayoutData(HexagonButton * button) const;
	void setCornerLayoutData(CornerButton * button) const;
	void setSideLayoutData(SideButton * button, const HexVector & position) const;
	void setElementLayoutData(ElementButton * button, const HexVector & position) const;

	unsigned int adjustLayoutData(unsigned int proposedHexagonRadius);

	// getters
	const QSize & getGridSize() const { return gridSize; };
	const QSize & getHexagonSize() const { return hexagonSize; };
	const QPolygon & getHexagonPolygon() const { return hexagonPolygon; };
	const QSize & getCornerSize() const { return cornerSize; };
	unsigned int getCornerRadius() const { return cornerRadius; };
	const QSize * getSideSize() const { return sideSize; };
	const QPolygon * getSidePolygon() const { return sidePolygon; };

	QVector<HexVector> findAllHexagonsInRect(const QRect & rct) const;
	QVector<HexVector> findAllCornersInRect(const QRect & rct) const;
	QVector<HexVector> findAllCornersInRect(const QRect & rct, const QVector<HexVector> & hexagonsInRect) const;
	QVector<HexVector> findAllSidesInRect(const QRect & rct) const;
	QVector<HexVector> findAllSidesInRect(const QRect & rct, const QVector<HexVector> & hexagonsInRect) const;

private:
	void recursiveHexagonFinderInRect(const HexVector & position, QVector<HexVector> & foundHexagons, const QRect & rct) const;


private:
	QSize gridSize;
	QSize hexagonSize;
	QPolygon hexagonPolygon;
	QSize cornerSize;
	unsigned int cornerRadius;
	QSize sideSize[3];
	QPolygon sidePolygon[3];


};
*/

#endif /* LAYOUTHELPER_H_ */
